1
Dari Dataset Mainan ke Kekacauan Dunia Nyata
EvoClass-AI002Kuliah 5
00:00

1. Menjembatani Jurang: Dasar-Dasar Pemuatan Data

Model Deep Learning berkembang pesat dengan data yang bersih dan konsisten, tetapi dataset dunia nyata pada dasarnya berantakan. Kita harus beralih dari benchmark siap pakai (seperti MNIST) ke pengelolaan sumber data tak terstruktur di mana pemuatan data sendiri merupakan tugas kompleks yang perlu diatur secara cermat. Fondasi dari proses ini terletak pada alat khusus PyTorch untuk manajemen data.

Tantangan utama adalah mengubah data mentah dan tersebar (gambar, teks, file audio) yang disimpan di disk menjadi format PyTorch yang sangat terorganisir dan standar,format Tensoryang diharapkan oleh GPU. Ini membutuhkan logika khusus untuk indeksing, pembebanan, pra-pemrosesan, dan akhirnya pembagian dalam batch.

Tantangan Utama dalam Data Dunia Nyata

  • Kekacauan Data: Data tersebar di berbagai direktori, sering kali hanya diindeks melalui file CSV.
  • Pra-pemrosesan Diperlukan: Gambar mungkin memerlukan penyesuaian ukuran, normalisasi, atau augmentasi sebelum dikonversi menjadi tensor.
  • Tujuan Efisiensi: Data harus dikirim ke GPU dalam batch yang dioptimalkan dan tidak menahan (non-blocking) agar kecepatan pelatihan maksimal.
Solusi PyTorch: Memisahkan Tugas
PyTorch menerapkan pemisahan tanggung jawab: objek Dataset menangani "apa" (bagaimana mengakses satu sampel dan label), sedangkan objek DataLoader menangani "bagaimana" (pembagian batch yang efisien, pengacakan, dan pengiriman multithreaded).
data_pipeline.py
TERMINALbash — data-env
> Siap. Klik "Jalankan" untuk menjalankan.
>
Pemeriksa TensorLangsung

Jalankan kode untuk memeriksa tensor aktif
Pertanyaan 1
Apa peran utama dari objek PyTorch Datasetobjek?
Mengorganisasi sampel menjadi mini-batch dan mengacaknya.
Menentukan logika untuk mengambil satu sampel yang telah diproses sebelumnya.
Melakukan perkalian matriks di dalam model.
Pertanyaan 2
Parameter apa yangDataLoadermemungkinkan pemuatan data secara paralel menggunakan beberapa core CPU?
perpindahan_perangkat
ukuran_batch
jumlah_pekerja
muat_aset
Pertanyaan 3
Jika gambar mentah Anda memiliki ukuran yang berbeda-beda, komponen apa yang bertanggung jawab utama dalam menyesuaikan ukurannya ke dimensi yang seragam (misalnya, $224 \times 224$)?
Fungsi collate_fn.
Pemroses gambar khusus GPU.
Fungsi transformasi yang diterapkan dalam metode __getitem__metode.
Tantangan: Blueprints Pemuat Gambar Kustom
Tentukan struktur yang dibutuhkan untuk klasifikasi gambar dunia nyata.
Anda sedang membuat sebuah CustomDataset untuk 10.000 gambar yang diindeks oleh satu file CSV yang berisi jalur dan label.
Langkah 1
Metode wajib apa yang harus mengembalikan jumlah total sampel?
Solusi:
Metode __len__metode.
Konsep: Menentukan ukuran epoch.
Langkah 2
Apa urutan operasi yang benar di dalam __getitem__(self, index)?
Solusi:
1. Cari jalur file menggunakan indeks.
2. Muat data mentah (misalnya, Gambar).
3. Terapkan transformasi yang diperlukan transformasi.
4. Kembalikan Tensor yang telah diproses dan Label.